經過這幾天的學習,個人認為除了最初比特幣論文的基礎外,像是智能合約(smart contract)、權益證明(proof of stake)、私有鏈(Private blockchain)等內容都是探討區塊鏈應用時難以繞開的知識,而這些內容正好都是乙太坊(Ethereum)所具備的特性,於決定花上幾天由Ethereum出發來探討這些技術背後的運作原理。
首先來看看英文wiki對Ethereum的定義:
Ethereum is an open-source, public, blockchain-based distributed computing platform featuring smart contract (scripting) functionality.
看起來好複雜阿,Ethereum應該是跟比特幣差不多的東西吧?雖然在Day 8已經提及了ETH、ETC新舊乙太幣的例子,但乙太坊(Ethereum)為什麼會稱呼為平台呢?
這時候當然要把白皮書找來看看,發現重要的一點在於乙太坊使用的語言是具有圖靈完備性(Turing completeness)的,相對來看比特幣使用的腳本語言並非如此。
來打開Blockchain.info網站可以看到比特幣執行交易時其實是在區塊中塞入腳本語言來執行的。
比特幣使用的這個script除了簡單的進行簽名的功能,其實也可以進行很多操作,但是比特幣當初的設計理念是希望讓腳本語言簡單一點,所以並不是圖靈完備,簡單說就是比特幣執行交易所使用的腳本語言功能是有限的,反之以太坊內設計的語言更適合去進行智能合約這樣的運作。
所以乙太坊的重點並不只是內部金錢的交換,還特別主打了完整的智能合約的功能。
智能合約(smart contract)是由Nick Szabo在1994提出,其概念跟區塊鏈技術的去信任化思想不謀而合,傳統合約在運作上是白紙黑字、有法律條文保障、不論合約達成或是違約負責執行的都是人。而智能合約希望能讓程式去判定合約的執行與否,並且自動執行程式規定的內容,但程式執行有個最大的問題是執行的程式可能被竄改,但我們知道區塊鏈技術紀錄的資料是無法竄改的,也就讓這樣的合約運行有了可能性。
今天的內容有點少,因為關於乙太坊跟智能合約的說明很多還沒有看得很深入,個人認為與其散佈錯誤訊息,還是只講些自己可以確定的內容就好。
Ethereum
https://en.wikipedia.org/wiki/Ethereum
Ethereum White Paper
https://github.com/ethereum/wiki/wiki/White-Paper
Blockchain.info
https://blockchain.info/
Bitcoin Script
https://en.bitcoin.it/wiki/Script
智能合約
https://en.wikipedia.org/wiki/Smart_contract